﻿using System;
using Sinacor.Infra.Common;
using System.Collections.Generic;
using Sinacor.Servico.Bovespa.Cliente.BusinessEntity;
using Sinacor.Servico.Bovespa.Cliente.Service.DataContract.Request;
using Sinacor.Servico.Bovespa.Cliente.Service.DataContract.Response;

namespace Sinacor.Servico.Bovespa.Cliente.Service.ServiceImplementation.Translator.DataContractToBusinessEntity
{
    public class Correspondente
    {
        public BusinessEntity.Correspondente ToCorrespondente(DataContract.Request.CorrespondenteRequest from)
        {
            BusinessEntity.Correspondente to = new BusinessEntity.Correspondente();
            to.Codigo = from.Codigo;
            to.CodigoMembroBovespa = from.CodigoMembroBovespa;
            to.IndicadorBroker = from.IndicadorBroker;
            to.Nome = from.Nome;
            to.NomeResumidoCorrespondente = from.NomeResumidoCorrespondente;
            to.PercentualComissao = from.PercentualComissao;
            return to;
        }
        public List<BusinessEntity.Correspondente> ToCorrespondentes(List<DataContract.Request.CorrespondenteRequest> correspondente)
        {
            List<BusinessEntity.Correspondente> to = new List<BusinessEntity.Correspondente>();
            foreach (CorrespondenteRequest item in correspondente)
            {
                to.Add(ToCorrespondente(item));
            }
            return to;
        }

        public BusinessEntity.Parameter.FiltroCorrespondente ToFiltroCorrespondente(DataContract.Request.FiltroCorrespondenteRequest from)
        {
            BusinessEntity.Parameter.FiltroCorrespondente to = new BusinessEntity.Parameter.FiltroCorrespondente();
            if (from == null)
            {
                to = null;
            }
            else
            {
                to.Codigo = from.Codigo;
                to.Nome = from.Nome;
            }
            return to;
        }
        public List<BusinessEntity.Parameter.FiltroCorrespondente> ToFiltroCorrespondente(List<DataContract.Request.FiltroCorrespondenteRequest> filtroCorrespondentes)
        {
            List<BusinessEntity.Parameter.FiltroCorrespondente> to = new List<Sinacor.Servico.Bovespa.Cliente.BusinessEntity.Parameter.FiltroCorrespondente>();
            foreach (FiltroCorrespondenteRequest item in filtroCorrespondentes)
            {
                to.Add(ToFiltroCorrespondente(item));
            }
            return to;
        }

        public BusinessEntity.Parameter.FiltroCorrespondenteChave ToFiltroCorrespondenteChave(DataContract.Request.FiltroCorrespondenteChaveRequest filtroCorrespondente)
        {
            BusinessEntity.Parameter.FiltroCorrespondenteChave to = null;
            if (filtroCorrespondente != null)
            {
                to = new Sinacor.Servico.Bovespa.Cliente.BusinessEntity.Parameter.FiltroCorrespondenteChave();
                to.Codigo = filtroCorrespondente.Codigo;
            }
            return to;
        }
        public List<BusinessEntity.Parameter.FiltroCorrespondenteChave> ToFiltroCorrespondenteChave(List<DataContract.Request.FiltroCorrespondenteChaveRequest> filtroCorrespondentes)
        {
            List<BusinessEntity.Parameter.FiltroCorrespondenteChave> to = new List<Sinacor.Servico.Bovespa.Cliente.BusinessEntity.Parameter.FiltroCorrespondenteChave>();
            foreach (DataContract.Request.FiltroCorrespondenteChaveRequest item in filtroCorrespondentes)
            {
                to.Add(ToFiltroCorrespondenteChave(item));
            }
            return to;
        }
    }
}

